import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import javax.swing.*;

public class VueJeu extends JPanel implements Observateur {
    JeuSnakeBase monde;
    Image imageVaisseau;
    Image imageObjetPerdu;      
    int zoom = 1;

    public VueJeu(JeuSnakeBase monde) {
	this.monde = monde;

	// image
	Toolkit kit=Toolkit.getDefaultToolkit();
	imageVaisseau = kit.getImage("carrots.gif");
	imageObjetPerdu = kit.getImage("soko.gif");
	
	{ // attendre que les images soient chargees
	    MediaTracker tracker = new MediaTracker(this);
	    tracker.addImage(imageVaisseau,0);
	    tracker.addImage(imageObjetPerdu,1);
	    try { 
		tracker.waitForID(0);
		tracker.waitForID(1);
	    }
	    catch (InterruptedException exception) {}
	}
    }

    public void miseAJour() {
    /*
	if (monde.nbObjetsPerdus() == 0)
	    setBackground(Color.yellow);
	repaint();
    */
    }
	
    public void paintComponent(Graphics g){
	super.paintComponent(g);
	Graphics2D g2=(Graphics2D) g;
	
	// redefinir le systeme de coordonnees    
	//double unitX = (double) getWidth() / (double) (monde.largeur);
	//double unitY = (double) getHeight() / (double) (monde.hauteur);
	AffineTransform aT = g2.getTransform();


	//AffineTransform affineTransform = new AffineTransform(unitX,0,0,unitY,0,0);
	//g2.transform(affineTransform);

	// dessin des objets volants
	//dessineObjetVolant(g2,imageVaisseau,monde.vaisseau.x,monde.vaisseau.y,monde.vaisseau.taille);

	/*
	for (int i=0; i<monde.objetsPerdus.size(); i++) {
	    MondeConcret.ObjetVolant obj = monde.objetsPerdus.get(i);
	    dessineObjetVolant(g2,imageObjetPerdu,obj.x,obj.y,obj.taille);
	}
	*/
	g2.setTransform(aT);
    }

    private void dessineObjetVolant(Graphics2D g2, Image image, int x, int y, int taille) {
	int largeur = image.getWidth(null);
	int hauteur = image.getHeight(null);
	int xp = x -taille /2;
	int yp = y -taille /2;
	//int[] tabX = {xp,xp-monde.largeur,xp+monde.largeur};
	//int[] tabY = {yp,yp-monde.hauteur,xp+monde.hauteur};

	/*
	for (int i=0; i<3; i++)
	    for (int j=0; j<3; j++)
	   	g2.drawImage(image,tabX[i],tabY[j],taille,taille,null);
    }*/
    }
}
